//ORIGINAL SOURCE
/*

//function BlockingProxyGenerator(proxyGen) {
//	this.generateProxy = function(tokens) {
//		var sproxy = new Object();
//		var asproxy = TITTSyncing.sync(proxyGen.generateProxy)(tokens);
//		
//		for(var id in asproxy) {
//			if(id == "toString")
//				sproxy[id] = asproxy[id];
//			else
//				sproxy[id] = TITTSyncing.sync(asproxy[id]);
//		}
//		return sproxy;
//	}
//}

function BlockingProxyGenerator(proxyGen) {
	this.generateProxy = function(invoker) {

		var sproxy = new Object();
		var asproxy = TITTSyncing.sync(proxyGen.generateProxy)(invoker);
		
		for(var id in asproxy) {
			if(id == "toString")
				sproxy[id] = function(){ return "[Proxy object]"};
			else
				sproxy[id] = TITTSyncing.sync(asproxy[id]);
		}
		return sproxy;
	}
}

*/

function BlockingProxyGenerator(proxyGen){
this.generateProxy=function(invoker){var sproxy,id,asproxy,_cp=1;var _f=_frm(arguments);return _f.clsr(function(){_s:while(1){switch(_cp){case 1:_cp=2;case 2:if((_f.v2=_f._new(
Object))===_S){break _s;}sproxy=_f.v2;_cp=3;case 3:if((_f.v3=
TITTSyncing.sync(proxyGen.generateProxy))===_S){break _s;}_cp=4;case 4:if((_f.v4=_f.v3(invoker))===_S){break _s;}asproxy=_f.v4;
if((_f.iter4=_f.keys(asproxy))==_S)break _s;_f.ctr4=0;case 6:_cp=(_f.ctr4<_f.iter4.length)?7:8;break;case 7:id=_f.iter4[_f.ctr4];
_cp=(id=="toString")?9:10;break;case 9:
sproxy[id]=function(){return "[Proxy object]";};_cp=11;break;case 10:_cp=12;case 12:if((_f.v12=
TITTSyncing.sync(asproxy[id]))===_S){break _s;}sproxy[id]=_f.v12;_cp=11;break;case 11:case 5:_f.ctr4++;_cp=6;break;case 8:
return sproxy;return;}}return _f.sus(this)}).call(this)};}
